52<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Libre Riot Desktop</title>
<link rel="shortcut icon" href="/csh/favicon.ico" type="image/x-icon"/>
<link rel="stylesheet" type="text/css" href="/csh/stylesheet.css"/>
</head>

<body>
<header>
  <p><a href="/csh"><img src="/csh/homeicon" alt="csh"/></a></p>
</header>

<h1>Making a Libre Replacement for Riot Desktop</h1>

<a href="http://roaming-initiative.net/mediagoblin/u/csh/m/electron-free-riot-desktop/">
  <img src="http://roaming-initiative.net/mediagoblin/mgoblin_media/media_entries/2507/electronfreeriot.medium.png"
       alt="Screenshot: Riot in IceCat"/></a>

<p>
  As you may or may not know, there is a controversy over Chromium.
  LibrePlanet says
  Chromium <a href="https://libreplanet.org/wiki/Libre_Browsers_Libre_Formats#Browsers_that_might_or_might_not_be_free">might
  not be free</a>, while
  Debian <a href="https://packages.debian.org/stretch/chromium">includes
  it in main</a>.  In addition,
  Parabola <a href="https://lists.gnu.org/archive/html/libreplanet-discuss/2017-01/msg00001.html">recommends
  removing all Chromium code</a>, including Electron, which is a
  component of Riot Desktop.</p>
<p>
  This is bad news for the Riot Desktop.  To be
  a <a href="https://www.fsf.org/campaigns/priority-projects/voicevideochat">free
  software Skype replacement</a>, it must work without proprietary
  softare or dependencies.  Luckily, little sacrifice is needed for
  this.  Instead of using the desktop app, just run it
  in <a href="https://www.gnu.org/software/gnuzilla/">IceCat</a>.</p>
<p>
  But, I know what you're thinking.  <q>This is ugly!</q>  That's
  true!  But, we can easily change that, and I'll show you how.  All
  it takes i s just a few steps.</p>
<h2 id="setup">Setup</h2>
<p>
  First, create a new profile.</p>
<ol>
  <li>Open the Profile Manager from the terminal: <kbd>icecat -P</kbd></li>
  <li>Click <q>Create Profile...</q></li>
  <li>Click <q>Next</q></li>
  <li>Under <q>Enter new profile name:</q>, type <kbd>Riot</kbd></li>
  <li>Take note of the folder where your profile will be saved, and press <q>Finish</q></li>
</ol>
<p>
  Now, set up IceCat.</p>
<ol>
  <li>Go to <a href="about:preferences#general">Preferences</a></li>
  <li>In the <q>Home Page</q> text entry box, type <kbd>https://riot.im/app/</kbd></li>
  <li>In your file manager, go to <samp>~/.mozilla/icecat/</samp> and click on the folder with <q>Riot</q> in its name.  (If you don't see the hidden folder <samp>.mozilla/</samp> in your home directory, try revealing them with Ctrl+H or Ctrl+.)</li>
  <li>Create a folder called <q>chrome</q> and go into it.</li>
  <li>Create a plain text file called <samp>userChrome.css</samp> and open it. <em>Make sure the letter C is capitalized!</em></li>
  <li>Paste the following code into the file.
    <pre>
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
#navigator-toolbox { display: none }
    </pre>
  </li>
  <li>Save the file and restart IceCat.</li>
</ol>
<p>
  You should now have a version of IceCat dedicated to running
  Riot.</p>
<h2 id="caveat">Issues</h2>
<p>
  There are a few <a href="#issues">#issues</a> with
  the <a href="#setup">setup</a>.</p>
<ul>
  <li>You can't use your other profile for normal browsing</li>
  <li>The unnecessary browser features are still accessible, even though you cannot see them</li>
  <li>The title bar still says <q>IceCat</q><li>
  <li>Web<abbr title="Real Time Chat">RTC</abbr> voice and video calls still don't work, becuse of how IceCat is patched for security reasons.</li>
</ul>
  
</ul>

   
<hr/>
<footer>
<p>Last updated: 2017-10-16 19:23:19 CDT.</p>
<p>
Copyright 2017 Caleb Herbert under the terms of the
<a href="https://creativecommons.org/licenses/by/4.0/">Attribution
4.0 International</a> license.</p>
</footer>
</body>
</html>
